package bancosys.tec.persist.uniquevalue.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Anotação que define que o campo deve ter seu conteúdo gerado sequencialmente, sem colisão. O valor do campo será definido pelo
 * DefaultPersister, sobrescrevendo-o caso tenha sido definido. De preferência, a propriedade deve ser nullable=false e updatable=false,
 * para evitar que valores manuais sejam armazenados no campo em updates futuros. O campo deve ser do tipo Long.
 * 
 * @author lundberg
 */
@Target(value = ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UniqueGeneratedValue {
    /**
     * Mnemônico da sequencia que deve ser utilizada.
     */
    String value();
}
